#pragma once

class Scene;

// 绘图方法类型
enum class DrawType
{
	Draw_Axis,
	Draw_Mesh,
	Draw_Box,
	Draw_MeshData,
	Draw_CameraData,
	Draw_Sign,
	Draw_Tip
};

class DrawScene
{
public:
	static DrawScene *Create(DrawType type);
	virtual void Draw(Scene *scene) = 0;
};

/**
 * @file DrawScene.h
 * @author xingyifan
 * @date 2023-01-11 11:15
 *
 * @description: 绘图方法
 */

class DrawAxis : public DrawScene
{
public:
	virtual void Draw(Scene *scene);
};

class DrawMesh : public DrawScene
{
public:
	virtual void Draw(Scene *scene);
};

class DrawBox : public DrawScene
{
public:
	virtual void Draw(Scene *scene);
};

class DrawMeshData : public DrawScene
{
public:
	virtual void Draw(Scene *scene);
};

class DrawCameraData : public DrawScene
{
public:
	virtual void Draw(Scene *scene);
};

class DrawTip : public DrawScene
{
public:
	virtual void Draw(Scene *scene);
};

class DrawSign : public DrawScene
{
public:
	virtual void Draw(Scene* scene);
};